package a_02_wizhi.S_spring;

/**
 * @author fanhb on 2017/8/25
 * @desc Spring_IOC_AOP_DI_原理
 *
 * ioc原理 aop原理
 */
public class Spring_IOC_AOP_DI_原理 {

    /**
     *
     *
     * http://blog.csdn.net/mdcmy/article/details/8542277
     * http://blog.csdn.net/doris_crazy/article/details/18353197
     * http://www.cnblogs.com/flyingeagle/articles/7102282.html

     （9）依赖注入和控制反转是同一概念吗？
     依赖注入和控制反转: 是对同一件事情的不同描述，从某个方面讲，就是它们描述的角度不同。
        1): 依赖注入是从应用程序的角度在描述，可以把依赖注入描述完整点：
                应用程序依赖容器创建并注入它所需要的外部资源；
        2): 而控制反转是从容器的角度在描述，描述完整点：
                容器控制应用程序，由容器反向的向应用程序注入应用程序所需要的外部资源。

     （10）小结一下：
     其实IoC/DI对编程带来的最大改变不是从代码上，而是从思想上，发生了“主从换位”的变化。 应用程序原本是老大，要获取什么资源都是主动出击，
     但是在IoC/DI思想中，应用程序就变成被动的了，被动的等待IoC/DI容器来创建并注入它所需要的资源了。
     这么小小的一个改变其实是编程思想的一个大进步，这样就有效的分离了对象和它所需要的外部资源，使得它们松散耦合，有利于功能复用，更重要的是使得程序的整个体系结构变得非常灵活


     B): AOP面向切面
     AOP是OOP的延续，是（Aspect Oriented Programming）的缩写，意思是面向切面编程。
     AOP（Aspect Orient Programming），作为面向对象编程的一种补充，广泛应用于处理一些具有横切性质的系统级服务，
     如事务管理、安全检查、缓存、对象池管理等。 AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理，AOP 代理则可分为静态代理和动态代理两大类，
     其中静态代理是指使用 AOP 框架提供的命令进行编译，从而在编译阶段就可生成 AOP 代理类，因此也称为编译时增强；
     而动态代理则在运行时借助于 JDK 动态代理、CGLIB 等在内存中"临时"生成 AOP 动态代理类，因此也被称为运行时增强。

     让开发更多的是关注业务方面的逻辑的代码, 提高工作效率;
     */


}





